$(document).ready(function(){
	$('body').on('change', '.chkVerificacion', function(){
		if($(this).is(':checked')){
			$cantidadSolicitada = $(this).parents('tr').find('.txtCantidadSolicitada').val();
			$(this).parents('tr').find('.txtCantidadRecibida').attr('readonly',true).val($cantidadSolicitada);
		}else{
			$(this).parents('tr').find('.txtCantidadRecibida').removeAttr('readonly').focus();
		}
	});
	$('#lstOrdenCompra').change(function(){
		cargaDetalleOrdenCompra();
	});
	
	//Generar la orden de compra
	$('#frmOrdenCompraNuevo').submit(function(){
		if(!existeDetalleOrdenCompra()){
			return false;
		}else if(!$('input.required').validate()){
			return false;
		}else{
			$('#lstEmpresa, #lstProveedor').removeAttr('disabled');
			return true;
		}
	});
	
	//Registrar en el sistema la orden de compra (como movimiento).
	$('#frmRegistroOrdenCompra').submit(function(){
		if(!$('.required').validate()){
			return false;
		}else{
			$('#txtCantidadDetalle').val($('#tblDetalleOrdenCompra tbody tr').length);
			return true;
		}
	});
	
	//Agregar un producto al Detalle de la orden de compra
	$('#btnAgregarDetalleOrdenCompra').click(function(e){
		e.preventDefault();
		var ruta = "/producto/buscar/" + $('#txtIdProducto').val();
		var cantidad = $('#txtCantidadProducto').val();
		if(!$('#txtCodigoProducto, #txtCantidadProducto').validate()){
			return false;
		}else if(!existeProducto("Orden de Compra")){
			return false;
		}else if(!buscaProductoDetalleOrdenCompra()){
			return false;
		}else{
			agregaDetalleOrdenCompra(ruta, cantidad);
			var contador = parseInt($('#contador').val()) + 1;
			$('#contador').attr('value', contador);
			$('#txtCodigoProducto').attr('value','').focus();
			$('#txtCantidadProducto').attr('value','');
		}
	});
	
//Actualizacion de orden de compra
	$('#frmOrdenCompraActualiza').submit(function(){
		$('#txtCodigoProducto, #txtCantidadProducto').removeClass('required');
		if(!$('input.required').validate()){
			return false;
		}else{
			$('#lstEmpresa').attr("disabled",false);
			return true;
		}
	});
	
	//Quitar un producto del detalle de orden de compra
	$('body').on('click', '.btnEliminarDetalleOrdenCompra', function(e){
		e.preventDefault();
		$fila = $(this).parents('tr');
		if($fila.find('.txtEstado').length){
			$fila.find('.txtEstado').attr('value','0');
			$fila.hide();
		}else{
			$fila.remove();
		}
	});
	
	//Editar la cantidad del detalle de la orden de compra
	$('body').on('click', '.btnEditarDetalleOrdenCompra', function(e){
		e.preventDefault();
		$(this).parents('tr').find('.txtCantidadDetalle').removeAttr('readonly').focus();
	});
	
	//Impedir que la cantidad de detalle orden compra quede vacio,cero, o mayor al stock
	//disponible en caso de se una salida.
	$('body').on('blur', '.txtCantidadDetalle', function(){
		cantidadSalida = parseInt(this.value);
		if(cantidadSalida <= 0){
			$('.txtCantidadDetalle').focus().attr('value','');
		}else{
			$(this).attr('readonly',true);
		}
	});
	
	//Desactivar los combobox empresa y proveedor
	$('#lstEmpresa, #lstProveedor').change(function(){
		if(this.value != 0){
			$(this).attr('disabled','disabled');
		}
		if(this.id == "lstProveedor"){
			$('#tblDetalleOrdenCompra tbody').html("");
		}
	});
	
	//Activar los combobox empresa y proveedor
	$('#btnCambiarEmpresa').click(function(e){
		e.preventDefault();
		$('#lstEmpresa').removeAttr('disabled');
	});
	$('#btnCambiarProveedor').click(function(e){
		e.preventDefault();
		$('#lstProveedor').removeAttr('disabled');
	});
	
	//Verificar si se selecciono correctamente proveedor y empresa
	$('#txtCodigoProducto').focus(function(){
		if($('#lstEmpresa option:selected').val() == "0" || $('#lstProveedor option:selected').val() == "0"){
			$.msgbox(msgboxTitle,"Seleccione correctamente la Empresa y Proveedor");
			execute();
		}
	});
	
	//Calcular total
	$('body').on('blur', '.txtFob', function(){
		if(this.value > 0){
			$row = $(this).parents('tr');
			total = parseFloat($row.find('.txtCantidadDetalle').val()) * parseFloat($row.find('.txtFob').val());
			$row.find('.txtTotal').val(total);
			$row.find('.txtPiesas').focus();
		}
	});
	//Calcular carton
	$('body').on('blur', '.txtPiesas', function(){
		if(this.value > 0){
			$row = $(this).parents('tr');
			total = parseFloat($row.find('.txtCantidadDetalle').val()) / parseFloat($row.find('.txtPiesas').val());
			$row.find('.txtCarton').val(total);
			$row.find('.txtVolumen').focus();
		}
	});
	$('body').on('blur', '.txtVolumen', function(){
		if(this.value > 0){
			$row = $(this).parents('tr');
			total = parseFloat($row.find('.txtCarton').val()) * parseFloat($row.find('.txtVolumen').val());
			$row.find('.txtCbm').val(total);
		}
	});
});

//Comprobar si existe una orden de compra
	function existeOrdenCompra(){
		var x;
		$.ajax({
			async: false,
			url: "/ordencompra/contarnoregistrado/",
			dataType: "json",
			success: function(data){x = data.cantidad;}
		});
		if(x == 0){
			$.msgbox('Registro de Orden de Compra','No existe ninguna orden de compra para registrar');
			return false;
		}else{
			return true;
		}
	}
//Cargar el detalle de orden de compra
	function cargaDetalleOrdenCompra(){
		idOrdenCompra = $('#lstOrdenCompra option:selected').val();
		$page = "/detalleordencompra/listtable/" + idOrdenCompra;
		$.post($page, function(data){
			$('#tblDetalleOrdenCompra tbody').html(data);
		});
	}

//Restringir que no se ingresen dos veces un mismo producto al detalle de la orden de compra
	function buscaProductoDetalleOrdenCompra(){
		var codigoProducto = $.trim($('#txtCodigoProducto').val());
		var existe = $('#tblDetalleOrdenCompra .codigo:contains("' + codigoProducto + '")').length;
		if(existe > 0){
			$.msgbox('Orden Compra','El producto <strong>' + codigoProducto + '</strong> ya esta agregado en el<br>detalle de la orden de compra.');
			execute();
			return false;
		}else{
			return true;
		}
	}
	
//Carga el detalle de la orden de compra
	function agregaDetalleOrdenCompra(ruta, cantidad){
		var contador = $('#contador').val();
		var rutaImagen = $('#txtRutaImagen').val();
		var numeroOrdenCompra = $('#txtNumeroOrdenCompra').val();
		$.getJSON(ruta, function(data){
			$('#tblDetalleOrdenCompra tbody').append('<tr>'+
				'<td>'+
					'<input type="hidden" name="Detalleordencompra[' + contador + '][idproducto]" value="' + data.idproducto + '">'+
					'<img src="' + rutaImagen + data.codigo + '/' + data.foto + '" width="50" height="40">'+
					'</td>'+
				'<td class="codigo">'+data.codigo+'</td>'+
				'<td class="center">'+data.nompro+'</td>'+
				'<td class="center">'+data.marca+'</td>'+
				'<td class="center">'+data.nomemp+'</td>'+
				'<td><input type="text" name="Detalleordencompra[' + contador + '][cantidadsolicitada]" value="' + cantidad + '" class="txtCantidadDetalle required numeric" readonly style="width:40px"></td>'+
				'<td>'+data.nomum+'</td>'+
				'<td><input type="text" name="Detalleordencompra[' + contador + '][fob]" class="txtFob required text-50 numeric"></td>'+
				'<td><input type="text" name="Detalleordencompra[' + contador + '][total]" class="txtTotal required text-50" readonly></td>'+
				'<td><input type="text" name="Detalleordencompra[' + contador + '][piezas]" class="txtPiesas required text-50 numeric"></td>'+
				'<td><input type="text" name="Detalleordencompra[' + contador + '][carton]" class="txtCarton required text-50" readonly></td>'+
				'<td><input type="text" name="Detalleordencompra[' + contador + '][vol]" class="txtVolumen required text-50"></td>'+
				'<td><input type="text" name="Detalleordencompra[' + contador + '][cbm]" class="txtCbm required text-50" readonly></td>'+
				'<td><a href="#" class="btnEditarDetalleOrdenCompra"><img src="/imagenes/editar.gif"></a></td>'+
				'<td><a href="#" class="btnEliminarDetalleOrdenCompra"><img src="/imagenes/eliminar.gif"></a></td>'+
			'</tr>');
		});
	}

//Verificar si existe al menos un producto en el detalle de la orden de compra antes de registrar
	function existeDetalleOrdenCompra(){
		if($('#tblDetalleOrdenCompra >tbody >tr').length == 0){
			$.msgbox('Orden Compra','No existe ningun detalle orden compra para registrar');
			execute();
			return false;
		}else{
			$('#txtCodigoProducto, #txtCantidadProducto').removeClass('required');
			return true;
		}
	}